#ifndef BIRD_H
#define BIRD_H

#include <QGraphicsItem>
#include <QPropertyAnimation>
#include <QTimer>

class Bird : public QGraphicsObject //鸟类，继承自 QGraphicsObject 类
{
    Q_OBJECT
    Q_INTERFACES( QGraphicsItem )
    Q_PROPERTY( QPointF pos READ pos WRITE setPos )//实现Bird对象的位置属性
public:
    Bird();
    QRectF	boundingRect () const; //返回Bird对象的边界矩形
    void reBegin();//重新开始游戏
    bool isDied;//判断Bird是否已死亡
public slots:
    void ClickToFlay();//使Bird对象开始飞行（向上移动）
    void changeStatus();//改变Bird对象的状态，用于控制动画效果
    void checkCollision(); //检测Bird是否与地面、上下管道碰撞
    void CollisionToDeath();//判断Bird对象与地面、上下管道是否碰撞，若是则死亡
protected:
    void paint( QPainter* pPainter, const QStyleOptionGraphicsItem* pOption,
                QWidget* pWidget = 0 ); //绘制Bird对象
private :
    int status;//Bird对象的状态
    QPropertyAnimation m_anim;//QPropertyAnimation 类型的对象，用于实现动画效果
    QEasingCurve m_curve;//QEasingCurve 类型的对象，设置动画效果的缓和曲线
    QTimer *m_timer;//QTimer 类型的对象，用于不断更新Bird对象的位置和状态
    QTimer *m_checkTimer;//QTimer 类型的对象，用于检测碰撞

signals:
    void died();//Bird对象死亡时发出的信号
};

#endif // BIRD_H
